Ses dosyalar²n² τalabilmek iτin ÷ncelikle bir ses kart²na ya da sesleri PC hoparl÷rⁿnden dinleyebilmek iτin bir sⁿrⁿcⁿye ihtiyac²n²z var. (Bu sⁿrⁿcⁿyⁿ PC WORLD BBS'ten edinebilirsiniz.) ▌■te ses dosyalar²n² τalabilmeniz iτin gereken API fonksiyonu ve parametreleri. Bunlar² iyice inceledikten sonra program²m²z² yazmaya ba■layabilirsiniz.
Declare Function sndPlaySound Lib "MMSYSTEM.DLL" (ByVal ses$, ByVal ozellik%) As Integer
Parametreler:
ses$
╟al²nacak ses dosyas²n² belirtir.E≡er ses dosyas² belirtilmezse o anda τalan dosya durdurulur.
ozellik%
Bu de≡i■ken yerine ses dosyas²n²n nas²l τal²naca≡²n² belirten a■a≡²daki sabitlerden biri
kullan²lmal²d²r.
SND_SYNC
Sistem olaylar²n² durdurur. Program kontrolⁿ ses dosyas² τal²nd²ktan sonra geri d÷ner.
SND_ASYNC
Ses arka planda τalar. Program kontrolⁿ ses dosyas²n²n hemen ba■²nda geri d÷ner.
SND_NODEFAULT
E≡er belirtti≡iniz ses dosyas² bulunamad²ysa hata mesaj² verilmeden programa geri d÷nⁿlⁿr.
SND_LOOP
╟almak istedi≡iniz ses dosyas² sndPlaySound fonksiyonuna bo■ bir de≡er verene kadar tekrar eder. E≡er bu ÷zelli≡i kullan²yorsan²z ayn² zamanda ses dosyas²n² geri planda τalmaya yarayan
SND_ASYNC fonksiyonunu kullanmal²s²n²z.
SND_NOSTOP
E≡er herhangi bir ses o anda τal²n²yorsa istedi≡iniz dosya τal²nmaz ve bu fonksiyonu atad²≡²n²z de≡er an²nda 0 (False) olur. Bu ÷zellik ayn² zamanda o anda bir sesin τal²n²p τal²nmad²≡²n² anlaman²za da yard²mc² olur.
Not: sndPlaySound fonksiyonu e≡er belirtti≡iniz dosya sorunsuz olarak τal²n²rsa 1 de≡erini d÷ndⁿrⁿr.
Gelelim program²m²z²n kodlar²na. A■a≡²daki birinci paragraf program²n di≡er modⁿllerinden ayr² bir yere yaz²lmal²d²r.
(WAVCAL.BAS gibi.)
Declare Function sndPlaySound Lib "MMSYSTEM.DLL" (ByVal ses$, ByVal ozellik%) As Integer Global Const SND_SYNC = &H0 Global Const SND_ASYN = &H1 Global Const SND_NODEFAULT = &H2 Global Const SND_LOOP = &H8 Global Const SND_NOSTOP = &H10 Sub Form_Load () ChDir "c:\windows" label1.Caption = "" file1.Pattern = "*.wav" ' Sadece WAV uzant²l² dosyalar²m²z listelensin End Sub Sub Drive1_Change () dir1.Path = drive1.Drive ' Sⁿrⁿcⁿ de≡i■ti≡inde dizin listesini yenile End Sub Sub Dir1_Change () file1.Path = dir1.Path ' dizin de≡i■ti≡inde dosya listesini yenile End Sub Sub File1_Click () ses$ = dir1.Path + "\" + file1.FileName If Mid$(ses$, 4, 1) = "\" Then ' E≡er ana dizindeysek araya \ karakterini sokma ses$ = dir1.Path + file1.FileName End If
Burada Genel Dialog kutusunu kullanmamam²z²n bir dez avantaj²n² g÷rⁿyorsunuz. Her ne kadar bu kodu yazmadan program²m²z τal²■sa da liste kutumuz ana dizini g÷rdⁿ≡ⁿnde ses dosyam²z²n yerini bulmakta bir sorun ya■anacakt²r. Yani yukar²daki kod parτas² her seferinde bu sorunu gidermek iτin kullan²labilir.
label1.Caption = " Ses: " + ses$ ozellik% = SND_ASYNC And SND_NODEFAULT X% = sndPlaySound(ses$, ozellik%) End Sub▌leti■im iτin: Deyvi Levitas dlevitas@pcworld.com.tr